package com.zbkj.admin.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 商品属性值表 实体类。
 *
 * @author mybatis-flex-helper automatic generation
 * @since 1.0
 */
@Accessors(chain = true)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(name = "商品属性值表")
@TableName(value = "eb_product_attr_value")
@Table(value = "eb_product_attr_value")
public class EbProductAttrValueEntity implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @Schema(description = "主键")
    @Id(keyType = KeyType.Auto)
    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * 商品ID
     */
    @Schema(description = "商品ID")
    @Column(value = "product_id")
    @TableField(value = "product_id")
    private Integer productId;

    /**
     * 商品属性sku
     */
    @Schema(description = "商品属性sku")
    @Column(value = "sku")
    @TableField(value = "sku")
    private String sku;

    /**
     * 属性对应的库存
     */
    @Schema(description = "属性对应的库存")
    @Column(value = "stock")
    @TableField(value = "stock")
    private Integer stock;

    /**
     * 销量
     */
    @Schema(description = "销量")
    @Column(value = "sales")
    @TableField(value = "sales")
    private Integer sales;

    /**
     * 价格
     */
    @Schema(description = "价格")
    @Column(value = "price")
    @TableField(value = "price")
    private BigDecimal price;

    /**
     * 图片
     */
    @Schema(description = "图片")
    @Column(value = "image")
    @TableField(value = "image")
    private String image;

    /**
     * 成本价
     */
    @Schema(description = "成本价")
    @Column(value = "cost")
    @TableField(value = "cost")
    private BigDecimal cost;

    /**
     * 商品条码
     */
    @Schema(description = "商品条码")
    @Column(value = "bar_code")
    @TableField(value = "bar_code")
    private String barCode;

    /**
     * 原价
     */
    @Schema(description = "原价")
    @Column(value = "ot_price")
    @TableField(value = "ot_price")
    private BigDecimal otPrice;

    /**
     * 重量
     */
    @Schema(description = "重量")
    @Column(value = "weight")
    @TableField(value = "weight")
    private BigDecimal weight;

    /**
     * 体积
     */
    @Schema(description = "体积")
    @Column(value = "volume")
    @TableField(value = "volume")
    private BigDecimal volume;

    /**
     * 一级返佣
     */
    @Schema(description = "一级返佣")
    @Column(value = "brokerage")
    @TableField(value = "brokerage")
    private BigDecimal brokerage;

    /**
     * 二级返佣
     */
    @Schema(description = "二级返佣")
    @Column(value = "brokerage_two")
    @TableField(value = "brokerage_two")
    private BigDecimal brokerageTwo;

    /**
     * 基础类型：0=普通商品,1-积分商品,2-虚拟商品,4=视频号,5-云盘商品,6-卡密商品
     */
    @Schema(description = "基础类型：0=普通商品,1-积分商品,2-虚拟商品,4=视频号,5-云盘商品,6-卡密商品")
    @Column(value = "type")
    @TableField(value = "type")
    private Integer type;

    /**
     * 活动限购数量
     */
    @Schema(description = "活动限购数量")
    @Column(value = "quota")
    @TableField(value = "quota")
    private Integer quota;

    /**
     * 活动限购数量显示
     */
    @Schema(description = "活动限购数量显示")
    @Column(value = "quota_show")
    @TableField(value = "quota_show")
    private Integer quotaShow;

    /**
     * attr_values 创建更新时的属性对应
     */
    @Schema(description = "attr_values 创建更新时的属性对应")
    @Column(value = "attr_value")
    @TableField(value = "attr_value")
    private String attrValue;

    /**
     * 是否删除,0-否，1-是
     */
    @Schema(description = "是否删除,0-否，1-是")
    @Column(value = "is_del")
    @TableField(value = "is_del")
    private Integer isDel;

    /**
     * 并发版本控制
     */
    @Schema(description = "并发版本控制")
    @Column(value = "version", version = true)
    @TableField(value = "version")
    private Long version;

    /**
     * 主商品attrValueID
     */
    @Schema(description = "主商品attrValueID")
    @Column(value = "master_id")
    @TableField(value = "master_id")
    private Integer masterId;

    /**
     * 是否回滚库存：0-未回滚，1-已回滚
     */
    @Schema(description = "是否回滚库存：0-未回滚，1-已回滚")
    @Column(value = "is_callback")
    @TableField(value = "is_callback")
    private Integer isCallback;

    /**
     * 拓展文本，例云盘链接
     */
    @Schema(description = "拓展文本，例云盘链接")
    @Column(value = "expand")
    @TableField(value = "expand")
    private String expand;

    /**
     * 卡密库ID
     */
    @Schema(description = "卡密库ID")
    @Column(value = "cdkey_id")
    @TableField(value = "cdkey_id")
    private Integer cdkeyId;

    /**
     * 会员价格
     */
    @Schema(description = "会员价格")
    @Column(value = "vip_price")
    @TableField(value = "vip_price")
    private BigDecimal vipPrice;

    /**
     * 营销类型：0=基础商品,1=秒杀,2=拼团
     */
    @Schema(description = "营销类型：0=基础商品,1=秒杀,2=拼团")
    @Column(value = "marketing_type")
    @TableField(value = "marketing_type")
    private Integer marketingType;

    /**
     * 兑换积分
     */
    @Schema(description = "兑换积分")
    @Column(value = "redeem_integral")
    @TableField(value = "redeem_integral")
    private Integer redeemIntegral;

    /**
     * 是否显示
     */
    @Schema(description = "是否显示")
    @Column(value = "is_show")
    @TableField(value = "is_show")
    private Integer isShow;

    /**
     * 是否默认
     */
    @Schema(description = "是否默认")
    @Column(value = "is_default")
    @TableField(value = "is_default")
    private Integer isDefault;

    /**
     * 商品编号
     */
    @Schema(description = "商品编号")
    @Column(value = "item_number")
    @TableField(value = "item_number")
    private String itemNumber;

    /**
     * 商品购买所得积分
     */
    @Schema(description = "商品购买所得积分")
    @Column(value = "pro_integral")
    @TableField(value = "pro_integral")
    private BigDecimal proIntegral;

    /**
     * 金币
     */
    @Schema(description = "金币")
    @Column(value = "gold_coin")
    @TableField(value = "gold_coin")
    private BigDecimal goldCoin;


}
